1 /** 2 * (c) Copyright 1993, 1994, Silicon Graphics, Inc. 3 * ALL RIGHTS RESERVED 4 * Permission to use, copy, modify, and distribute this software for 5 * any purpose and without fee is hereby granted, provided that the above 6 * copyright notice appear in all copies and that both the copyright notice 7 * and this permission notice appear in supporting documentation, and that 8 * the name of Silicon Graphics, Inc. not be used in advertising 9 * or publicity pertaining to distribution of the software without specific, 10 * written prior permission. 11 * 12 * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" 13 * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, 14 * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR 15 * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON 16 * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, 17 * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY 18 * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, 19 * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF 20 * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN 21 * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON 22 * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE 23 * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. 24 * 25 * US Government Users Restricted Rights 26 * Use, duplication, or disclosure by the Government is subject to 27 * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph 28 * (c)(1)(ii) of the Rights in Technical Data and Computer Software 29 * clause at DFARS 252.227-7013 and/or in similar or successor 30 * clauses in the FAR or the DOD or NASA FAR Supplement. 31 * Unpublished-- rights reserved under the copyright laws of the 32 * United States. Contractor/manufacturer is Silicon Graphics, 33 * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. 34 * 35 * OpenGL(TM) is a trademark of Silicon Graphics, Inc. 36 */ 37 #include <GLUT/glut.h> 38 #include <math.h> 39 #include "atlantis.h" 40 /* *INDENT-OFF* */ 41 static float N002[3] = {0.000077 ,-0.020611 ,0.999788}; 42 static float N003[3] = {0.961425 ,0.258729 ,-0.093390}; 43 static float N004[3] = {0.510811 ,-0.769633 ,-0.383063}; 44 static float N005[3] = {0.400123 ,0.855734 ,-0.328055}; 45 static float N006[3] = {-0.770715 ,0.610204 ,-0.183440}; 46 static float N007[3] = {-0.915597 ,-0.373345 ,-0.149316}; 47 static float N008[3] = {-0.972788 ,0.208921 ,-0.100179}; 48 static float N009[3] = {-0.939713 ,-0.312268 ,-0.139383}; 49 static float N010[3] = {-0.624138 ,-0.741047 ,-0.247589}; 50 static float N011[3] = {0.591434 ,-0.768401 ,-0.244471}; 51 static float N012[3] = {0.935152 ,-0.328495 ,-0.132598}; 52 static float N013[3] = {0.997102 ,0.074243 ,-0.016593}; 53 static float N014[3] = {0.969995 ,0.241712 ,-0.026186}; 54 static float N015[3] = {0.844539 ,0.502628 ,-0.184714}; 55 static float N016[3] = {-0.906608 ,0.386308 ,-0.169787}; 56 static float N017[3] = {-0.970016 ,0.241698 ,-0.025516}; 57 static float N018[3] = {-0.998652 ,0.050493 ,-0.012045}; 58 static float N019[3] = {-0.942685 ,-0.333051 ,-0.020556}; 59 static float N020[3] = {-0.660944 ,-0.750276 ,0.015480}; 60 static float N021[3] = {0.503549 ,-0.862908 ,-0.042749}; 61 static float N022[3] = {0.953202 ,-0.302092 ,-0.012089}; 62 static float N023[3] = {0.998738 ,0.023574 ,0.044344}; 63 static float N024[3] = {0.979297 ,0.193272 ,0.060202}; 64 static float N025[3] = {0.798300 ,0.464885 ,0.382883}; 65 static float N026[3] = {-0.756590 ,0.452403 ,0.472126}; 66 static float N027[3] = {-0.953855 ,0.293003 ,0.065651}; 67 static float N028[3] = {-0.998033 ,0.040292 ,0.048028}; 68 static float N029[3] = {-0.977079 ,-0.204288 ,0.059858}; 69 static float N030[3] = {-0.729117 ,-0.675304 ,0.111140}; 70 static float N031[3] = {0.598361 ,-0.792753 ,0.116221}; 71 static float N032[3] = {0.965192 ,-0.252991 ,0.066332}; 72 static float N033[3] = {0.998201 ,-0.002790 ,0.059892}; 73 static float N034[3] = {0.978657 ,0.193135 ,0.070207}; 74 static float N035[3] = {0.718815 ,0.680392 ,0.142733}; 75 static float N036[3] = {-0.383096 ,0.906212 ,0.178936}; 76 static float N037[3] = {-0.952831 ,0.292590 ,0.080647}; 77 static float N038[3] = {-0.997680 ,0.032417 ,0.059861}; 78 static float N039[3] = {-0.982629 ,-0.169881 ,0.074700}; 79 static float N040[3] = {-0.695424 ,-0.703466 ,0.146700}; 80 static float N041[3] = {0.359323 ,-0.915531 ,0.180805}; 81 static float N042[3] = {0.943356 ,-0.319387 ,0.089842}; 82 static float N043[3] = {0.998272 ,-0.032435 ,0.048993}; 83 static float N044[3] = {0.978997 ,0.193205 ,0.065084}; 84 static float N045[3] = {0.872144 ,0.470094 ,-0.135565}; 85 static float N046[3] = {-0.664282 ,0.737945 ,-0.119027}; 86 static float N047[3] = {-0.954508 ,0.288570 ,0.075107}; 87 static float N048[3] = {-0.998273 ,0.032406 ,0.048993}; 88 static float N049[3] = {-0.979908 ,-0.193579 ,0.048038}; 89 static float N050[3] = {-0.858736 ,-0.507202 ,-0.072938}; 90 static float N051[3] = {0.643545 ,-0.763887 ,-0.048237}; 91 static float N052[3] = {0.955580 ,-0.288954 ,0.058068}; 92 static float N058[3] = {0.000050 ,0.793007 ,-0.609213}; 93 static float N059[3] = {0.913510 ,0.235418 ,-0.331779}; 94 static float N060[3] = {-0.807970 ,0.495000 ,-0.319625}; 95 static float N061[3] = {0.000000 ,0.784687 ,-0.619892}; 96 static float N062[3] = {0.000000 ,-1.000000 ,0.000000}; 97 static float N063[3] = {0.000000 ,1.000000 ,0.000000}; 98 static float N064[3] = {0.000000 ,1.000000 ,0.000000}; 99 static float N065[3] = {0.000000 ,1.000000 ,0.000000}; 100 static float N066[3] = {-0.055784 ,0.257059 ,0.964784}; 101 static float N069[3] = {-0.000505 ,-0.929775 ,-0.368127}; 102 static float N070[3] = {0.000000 ,1.000000 ,0.000000}; 103 static float P002[3] = {0.00, -36.59, 5687.72}; 104 static float P003[3] = {90.00, 114.73, 724.38}; 105 static float P004[3] = {58.24, -146.84, 262.35}; 106 static float P005[3] = {27.81, 231.52, 510.43}; 107 static float P006[3] = {-27.81, 230.43, 509.76}; 108 static float P007[3] = {-46.09, -146.83, 265.84}; 109 static float P008[3] = {-90.00, 103.84, 718.53}; 110 static float P009[3] = {-131.10, -165.92, 834.85}; 111 static float P010[3] = {-27.81, -285.31, 500.00}; 112 static float P011[3] = {27.81, -285.32, 500.00}; 113 static float P012[3] = {147.96, -170.89, 845.50}; 114 static float P013[3] = {180.00, 0.00, 2000.00}; 115 static float P014[3] = {145.62, 352.67, 2000.00}; 116 static float P015[3] = {55.62, 570.63, 2000.00}; 117 static float P016[3] = {-55.62, 570.64, 2000.00}; 118 static float P017[3] = {-145.62, 352.68, 2000.00}; 119 static float P018[3] = {-180.00, 0.01, 2000.00}; 120 static float P019[3] = {-178.20, -352.66, 2001.61}; 121 static float P020[3] = {-55.63, -570.63, 2000.00}; 122 static float P021[3] = {55.62, -570.64, 2000.00}; 123 static float P022[3] = {179.91, -352.69, 1998.39}; 124 static float P023[3] = {150.00, 0.00, 3000.00}; 125 static float P024[3] = {121.35, 293.89, 3000.00}; 126 static float P025[3] = {46.35, 502.93, 2883.09}; 127 static float P026[3] = {-46.35, 497.45, 2877.24}; 128 static float P027[3] = {-121.35, 293.90, 3000.00}; 129 static float P028[3] = {-150.00, 0.00, 3000.00}; 130 static float P029[3] = {-152.21, -304.84, 2858.68}; 131 static float P030[3] = {-46.36, -475.52, 3000.00}; 132 static float P031[3] = {46.35, -475.53, 3000.00}; 133 static float P032[3] = {155.64, -304.87, 2863.50}; 134 static float P033[3] = {90.00, 0.00, 4000.00}; 135 static float P034[3] = {72.81, 176.33, 4000.00}; 136 static float P035[3] = {27.81, 285.32, 4000.00}; 137 static float P036[3] = {-27.81, 285.32, 4000.00}; 138 static float P037[3] = {-72.81, 176.34, 4000.00}; 139 static float P038[3] = {-90.00, 0.00, 4000.00}; 140 static float P039[3] = {-72.81, -176.33, 4000.00}; 141 static float P040[3] = {-27.81, -285.31, 4000.00}; 142 static float P041[3] = {27.81, -285.32, 4000.00}; 143 static float P042[3] = {72.81, -176.34, 4000.00}; 144 static float P043[3] = {30.00, 0.00, 5000.00}; 145 static float P044[3] = {24.27, 58.78, 5000.00}; 146 static float P045[3] = {9.27, 95.11, 5000.00}; 147 static float P046[3] = {-9.27, 95.11, 5000.00}; 148 static float P047[3] = {-24.27, 58.78, 5000.00}; 149 static float P048[3] = {-30.00, 0.00, 5000.00}; 150 static float P049[3] = {-24.27, -58.78, 5000.00}; 151 static float P050[3] = {-9.27, -95.10, 5000.00}; 152 static float P051[3] = {9.27, -95.11, 5000.00}; 153 static float P052[3] = {24.27, -58.78, 5000.00}; 154 static float P058[3] = {0.00, 1212.72, 2703.08}; 155 static float P059[3] = {50.36, 0.00, 108.14}; 156 static float P060[3] = {-22.18, 0.00, 108.14}; 157 static float P061[3] = {0.00, 1181.61, 6344.65}; 158 static float P062[3] = {516.45, -887.08, 2535.45}; 159 static float P063[3] = {-545.69, -879.31, 2555.63}; 160 static float P064[3] = {618.89, -1005.64, 2988.32}; 161 static float P065[3] = {-635.37, -1014.79, 2938.68}; 162 static float P066[3] = {0.00, 1374.43, 3064.18}; 163 static float P069[3] = {0.00, -418.25, 5765.04}; 164 static float P070[3] = {0.00, 1266.91, 6629.60}; 165 static float P071[3] = {-139.12, -124.96, 997.98}; 166 static float P072[3] = {-139.24, -110.18, 1020.68}; 167 static float P073[3] = {-137.33, -94.52, 1022.63}; 168 static float P074[3] = {-137.03, -79.91, 996.89}; 169 static float P075[3] = {-135.21, -91.48, 969.14}; 170 static float P076[3] = {-135.39, -110.87, 968.76}; 171 static float P077[3] = {150.23, -78.44, 995.53}; 172 static float P078[3] = {152.79, -92.76, 1018.46}; 173 static float P079[3] = {154.19, -110.20, 1020.55}; 174 static float P080[3] = {151.33, -124.15, 993.77}; 175 static float P081[3] = {150.49, -111.19, 969.86}; 176 static float P082[3] = {150.79, -92.41, 969.70}; 177 static float iP002[3] = {0.00, -36.59, 5687.72}; 178 static float iP004[3] = {58.24, -146.84, 262.35}; 179 static float iP007[3] = {-46.09, -146.83, 265.84}; 180 static float iP010[3] = {-27.81, -285.31, 500.00}; 181 static float iP011[3] = {27.81, -285.32, 500.00}; 182 static float iP023[3] = {150.00, 0.00, 3000.00}; 183 static float iP024[3] = {121.35, 293.89, 3000.00}; 184 static float iP025[3] = {46.35, 502.93, 2883.09}; 185 static float iP026[3] = {-46.35, 497.45, 2877.24}; 186 static float iP027[3] = {-121.35, 293.90, 3000.00}; 187 static float iP028[3] = {-150.00, 0.00, 3000.00}; 188 static float iP029[3] = {-121.35, -304.84, 2853.86}; 189 static float iP030[3] = {-46.36, -475.52, 3000.00}; 190 static float iP031[3] = {46.35, -475.53, 3000.00}; 191 static float iP032[3] = {121.35, -304.87, 2853.86}; 192 static float iP033[3] = {90.00, 0.00, 4000.00}; 193 static float iP034[3] = {72.81, 176.33, 4000.00}; 194 static float iP035[3] = {27.81, 285.32, 4000.00}; 195 static float iP036[3] = {-27.81, 285.32, 4000.00}; 196 static float iP037[3] = {-72.81, 176.34, 4000.00}; 197 static float iP038[3] = {-90.00, 0.00, 4000.00}; 198 static float iP039[3] = {-72.81, -176.33, 4000.00}; 199 static float iP040[3] = {-27.81, -285.31, 4000.00}; 200 static float iP041[3] = {27.81, -285.32, 4000.00}; 201 static float iP042[3] = {72.81, -176.34, 4000.00}; 202 static float iP043[3] = {30.00, 0.00, 5000.00}; 203 static float iP044[3] = {24.27, 58.78, 5000.00}; 204 static float iP045[3] = {9.27, 95.11, 5000.00}; 205 static float iP046[3] = {-9.27, 95.11, 5000.00}; 206 static float iP047[3] = {-24.27, 58.78, 5000.00}; 207 static float iP048[3] = {-30.00, 0.00, 5000.00}; 208 static float iP049[3] = {-24.27, -58.78, 5000.00}; 209 static float iP050[3] = {-9.27, -95.10, 5000.00}; 210 static float iP051[3] = {9.27, -95.11, 5000.00}; 211 static float iP052[3] = {24.27, -58.78, 5000.00}; 212 static float iP061[3] = {0.00, 1181.61, 6344.65}; 213 static float iP069[3] = {0.00, -418.25, 5765.04}; 214 static float iP070[3] = {0.00, 1266.91, 6629.60}; 215 /* *INDENT-ON* */ 216 217 void 218 Fish001(void) 219 { 220 glBegin(GL_POLYGON); 221 glNormal3fv(N005); 222 glVertex3fv(P005); 223 glNormal3fv(N059); 224 glVertex3fv(P059); 225 glNormal3fv(N060); 226 glVertex3fv(P060); 227 glNormal3fv(N006); 228 glVertex3fv(P006); 229 glEnd(); 230 glBegin(GL_POLYGON); 231 glNormal3fv(N015); 232 glVertex3fv(P015); 233 glNormal3fv(N005); 234 glVertex3fv(P005); 235 glNormal3fv(N006); 236 glVertex3fv(P006); 237 glNormal3fv(N016); 238 glVertex3fv(P016); 239 glEnd(); 240 glBegin(GL_POLYGON); 241 glNormal3fv(N006); 242 glVertex3fv(P006); 243 glNormal3fv(N060); 244 glVertex3fv(P060); 245 glNormal3fv(N008); 246 glVertex3fv(P008); 247 glEnd(); 248 glBegin(GL_POLYGON); 249 glNormal3fv(N016); 250 glVertex3fv(P016); 251 glNormal3fv(N006); 252 glVertex3fv(P006); 253 glNormal3fv(N008); 254 glVertex3fv(P008); 255 glEnd(); 256 glBegin(GL_POLYGON); 257 glNormal3fv(N016); 258 glVertex3fv(P016); 259 glNormal3fv(N008); 260 glVertex3fv(P008); 261 glNormal3fv(N017); 262 glVertex3fv(P017); 263 glEnd(); 264 glBegin(GL_POLYGON); 265 glNormal3fv(N017); 266 glVertex3fv(P017); 267 glNormal3fv(N008); 268 glVertex3fv(P008); 269 glNormal3fv(N018); 270 glVertex3fv(P018); 271 glEnd(); 272 glBegin(GL_POLYGON); 273 glNormal3fv(N008); 274 glVertex3fv(P008); 275 glNormal3fv(N009); 276 glVertex3fv(P009); 277 glNormal3fv(N018); 278 glVertex3fv(P018); 279 glEnd(); 280 glBegin(GL_POLYGON); 281 glNormal3fv(N008); 282 glVertex3fv(P008); 283 glNormal3fv(N060); 284 glVertex3fv(P060); 285 glNormal3fv(N009); 286 glVertex3fv(P009); 287 glEnd(); 288 glBegin(GL_POLYGON); 289 glNormal3fv(N007); 290 glVertex3fv(P007); 291 glNormal3fv(N010); 292 glVertex3fv(P010); 293 glNormal3fv(N009); 294 glVertex3fv(P009); 295 glEnd(); 296 glBegin(GL_POLYGON); 297 glNormal3fv(N009); 298 glVertex3fv(P009); 299 glNormal3fv(N019); 300 glVertex3fv(P019); 301 glNormal3fv(N018); 302 glVertex3fv(P018); 303 glEnd(); 304 glBegin(GL_POLYGON); 305 glNormal3fv(N009); 306 glVertex3fv(P009); 307 glNormal3fv(N010); 308 glVertex3fv(P010); 309 glNormal3fv(N019); 310 glVertex3fv(P019); 311 glEnd(); 312 glBegin(GL_POLYGON); 313 glNormal3fv(N010); 314 glVertex3fv(P010); 315 glNormal3fv(N020); 316 glVertex3fv(P020); 317 glNormal3fv(N019); 318 glVertex3fv(P019); 319 glEnd(); 320 glBegin(GL_POLYGON); 321 glNormal3fv(N010); 322 glVertex3fv(P010); 323 glNormal3fv(N011); 324 glVertex3fv(P011); 325 glNormal3fv(N021); 326 glVertex3fv(P021); 327 glNormal3fv(N020); 328 glVertex3fv(P020); 329 glEnd(); 330 glBegin(GL_POLYGON); 331 glNormal3fv(N004); 332 glVertex3fv(P004); 333 glNormal3fv(N011); 334 glVertex3fv(P011); 335 glNormal3fv(N010); 336 glVertex3fv(P010); 337 glNormal3fv(N007); 338 glVertex3fv(P007); 339 glEnd(); 340 glBegin(GL_POLYGON); 341 glNormal3fv(N004); 342 glVertex3fv(P004); 343 glNormal3fv(N012); 344 glVertex3fv(P012); 345 glNormal3fv(N011); 346 glVertex3fv(P011); 347 glEnd(); 348 glBegin(GL_POLYGON); 349 glNormal3fv(N012); 350 glVertex3fv(P012); 351 glNormal3fv(N022); 352 glVertex3fv(P022); 353 glNormal3fv(N011); 354 glVertex3fv(P011); 355 glEnd(); 356 glBegin(GL_POLYGON); 357 glNormal3fv(N011); 358 glVertex3fv(P011); 359 glNormal3fv(N022); 360 glVertex3fv(P022); 361 glNormal3fv(N021); 362 glVertex3fv(P021); 363 glEnd(); 364 glBegin(GL_POLYGON); 365 glNormal3fv(N059); 366 glVertex3fv(P059); 367 glNormal3fv(N005); 368 glVertex3fv(P005); 369 glNormal3fv(N015); 370 glVertex3fv(P015); 371 glEnd(); 372 glBegin(GL_POLYGON); 373 glNormal3fv(N015); 374 glVertex3fv(P015); 375 glNormal3fv(N014); 376 glVertex3fv(P014); 377 glNormal3fv(N003); 378 glVertex3fv(P003); 379 glEnd(); 380 glBegin(GL_POLYGON); 381 glNormal3fv(N015); 382 glVertex3fv(P015); 383 glNormal3fv(N003); 384 glVertex3fv(P003); 385 glNormal3fv(N059); 386 glVertex3fv(P059); 387 glEnd(); 388 glBegin(GL_POLYGON); 389 glNormal3fv(N014); 390 glVertex3fv(P014); 391 glNormal3fv(N013); 392 glVertex3fv(P013); 393 glNormal3fv(N003); 394 glVertex3fv(P003); 395 glEnd(); 396 glBegin(GL_POLYGON); 397 glNormal3fv(N003); 398 glVertex3fv(P003); 399 glNormal3fv(N012); 400 glVertex3fv(P012); 401 glNormal3fv(N059); 402 glVertex3fv(P059); 403 glEnd(); 404 glBegin(GL_POLYGON); 405 glNormal3fv(N013); 406 glVertex3fv(P013); 407 glNormal3fv(N012); 408 glVertex3fv(P012); 409 glNormal3fv(N003); 410 glVertex3fv(P003); 411 glEnd(); 412 glBegin(GL_POLYGON); 413 glNormal3fv(N013); 414 glVertex3fv(P013); 415 glNormal3fv(N022); 416 glVertex3fv(P022); 417 glNormal3fv(N012); 418 glVertex3fv(P012); 419 glEnd(); 420 glBegin(GL_POLYGON); 421 glVertex3fv(P071); 422 glVertex3fv(P072); 423 glVertex3fv(P073); 424 glVertex3fv(P074); 425 glVertex3fv(P075); 426 glVertex3fv(P076); 427 glEnd(); 428 glBegin(GL_POLYGON); 429 glVertex3fv(P077); 430 glVertex3fv(P078); 431 glVertex3fv(P079); 432 glVertex3fv(P080); 433 glVertex3fv(P081); 434 glVertex3fv(P082); 435 glEnd(); 436 } 437 438 void 439 Fish002(void) 440 { 441 glBegin(GL_POLYGON); 442 glNormal3fv(N013); 443 glVertex3fv(P013); 444 glNormal3fv(N014); 445 glVertex3fv(P014); 446 glNormal3fv(N024); 447 glVertex3fv(P024); 448 glNormal3fv(N023); 449 glVertex3fv(P023); 450 glEnd(); 451 glBegin(GL_POLYGON); 452 glNormal3fv(N014); 453 glVertex3fv(P014); 454 glNormal3fv(N015); 455 glVertex3fv(P015); 456 glNormal3fv(N025); 457 glVertex3fv(P025); 458 glNormal3fv(N024); 459 glVertex3fv(P024); 460 glEnd(); 461 glBegin(GL_POLYGON); 462 glNormal3fv(N016); 463 glVertex3fv(P016); 464 glNormal3fv(N017); 465 glVertex3fv(P017); 466 glNormal3fv(N027); 467 glVertex3fv(P027); 468 glNormal3fv(N026); 469 glVertex3fv(P026); 470 glEnd(); 471 glBegin(GL_POLYGON); 472 glNormal3fv(N017); 473 glVertex3fv(P017); 474 glNormal3fv(N018); 475 glVertex3fv(P018); 476 glNormal3fv(N028); 477 glVertex3fv(P028); 478 glNormal3fv(N027); 479 glVertex3fv(P027); 480 glEnd(); 481 glBegin(GL_POLYGON); 482 glNormal3fv(N020); 483 glVertex3fv(P020); 484 glNormal3fv(N021); 485 glVertex3fv(P021); 486 glNormal3fv(N031); 487 glVertex3fv(P031); 488 glNormal3fv(N030); 489 glVertex3fv(P030); 490 glEnd(); 491 glBegin(GL_POLYGON); 492 glNormal3fv(N013); 493 glVertex3fv(P013); 494 glNormal3fv(N023); 495 glVertex3fv(P023); 496 glNormal3fv(N022); 497 glVertex3fv(P022); 498 glEnd(); 499 glBegin(GL_POLYGON); 500 glNormal3fv(N022); 501 glVertex3fv(P022); 502 glNormal3fv(N023); 503 glVertex3fv(P023); 504 glNormal3fv(N032); 505 glVertex3fv(P032); 506 glEnd(); 507 glBegin(GL_POLYGON); 508 glNormal3fv(N022); 509 glVertex3fv(P022); 510 glNormal3fv(N032); 511 glVertex3fv(P032); 512 glNormal3fv(N031); 513 glVertex3fv(P031); 514 glEnd(); 515 glBegin(GL_POLYGON); 516 glNormal3fv(N022); 517 glVertex3fv(P022); 518 glNormal3fv(N031); 519 glVertex3fv(P031); 520 glNormal3fv(N021); 521 glVertex3fv(P021); 522 glEnd(); 523 glBegin(GL_POLYGON); 524 glNormal3fv(N018); 525 glVertex3fv(P018); 526 glNormal3fv(N019); 527 glVertex3fv(P019); 528 glNormal3fv(N029); 529 glVertex3fv(P029); 530 glEnd(); 531 glBegin(GL_POLYGON); 532 glNormal3fv(N018); 533 glVertex3fv(P018); 534 glNormal3fv(N029); 535 glVertex3fv(P029); 536 glNormal3fv(N028); 537 glVertex3fv(P028); 538 glEnd(); 539 glBegin(GL_POLYGON); 540 glNormal3fv(N019); 541 glVertex3fv(P019); 542 glNormal3fv(N020); 543 glVertex3fv(P020); 544 glNormal3fv(N030); 545 glVertex3fv(P030); 546 glEnd(); 547 glBegin(GL_POLYGON); 548 glNormal3fv(N019); 549 glVertex3fv(P019); 550 glNormal3fv(N030); 551 glVertex3fv(P030); 552 glNormal3fv(N029); 553 glVertex3fv(P029); 554 glEnd(); 555 } 556 557 void 558 Fish003(void) 559 { 560 glBegin(GL_POLYGON); 561 glNormal3fv(N032); 562 glVertex3fv(P032); 563 glNormal3fv(N023); 564 glVertex3fv(P023); 565 glNormal3fv(N033); 566 glVertex3fv(P033); 567 glNormal3fv(N042); 568 glVertex3fv(P042); 569 glEnd(); 570 glBegin(GL_POLYGON); 571 glNormal3fv(N031); 572 glVertex3fv(P031); 573 glNormal3fv(N032); 574 glVertex3fv(P032); 575 glNormal3fv(N042); 576 glVertex3fv(P042); 577 glNormal3fv(N041); 578 glVertex3fv(P041); 579 glEnd(); 580 glBegin(GL_POLYGON); 581 glNormal3fv(N023); 582 glVertex3fv(P023); 583 glNormal3fv(N024); 584 glVertex3fv(P024); 585 glNormal3fv(N034); 586 glVertex3fv(P034); 587 glNormal3fv(N033); 588 glVertex3fv(P033); 589 glEnd(); 590 glBegin(GL_POLYGON); 591 glNormal3fv(N024); 592 glVertex3fv(P024); 593 glNormal3fv(N025); 594 glVertex3fv(P025); 595 glNormal3fv(N035); 596 glVertex3fv(P035); 597 glNormal3fv(N034); 598 glVertex3fv(P034); 599 glEnd(); 600 glBegin(GL_POLYGON); 601 glNormal3fv(N030); 602 glVertex3fv(P030); 603 glNormal3fv(N031); 604 glVertex3fv(P031); 605 glNormal3fv(N041); 606 glVertex3fv(P041); 607 glNormal3fv(N040); 608 glVertex3fv(P040); 609 glEnd(); 610 glBegin(GL_POLYGON); 611 glNormal3fv(N025); 612 glVertex3fv(P025); 613 glNormal3fv(N026); 614 glVertex3fv(P026); 615 glNormal3fv(N036); 616 glVertex3fv(P036); 617 glNormal3fv(N035); 618 glVertex3fv(P035); 619 glEnd(); 620 glBegin(GL_POLYGON); 621 glNormal3fv(N026); 622 glVertex3fv(P026); 623 glNormal3fv(N027); 624 glVertex3fv(P027); 625 glNormal3fv(N037); 626 glVertex3fv(P037); 627 glNormal3fv(N036); 628 glVertex3fv(P036); 629 glEnd(); 630 glBegin(GL_POLYGON); 631 glNormal3fv(N027); 632 glVertex3fv(P027); 633 glNormal3fv(N028); 634 glVertex3fv(P028); 635 glNormal3fv(N038); 636 glVertex3fv(P038); 637 glNormal3fv(N037); 638 glVertex3fv(P037); 639 glEnd(); 640 glBegin(GL_POLYGON); 641 glNormal3fv(N028); 642 glVertex3fv(P028); 643 glNormal3fv(N029); 644 glVertex3fv(P029); 645 glNormal3fv(N039); 646 glVertex3fv(P039); 647 glNormal3fv(N038); 648 glVertex3fv(P038); 649 glEnd(); 650 glBegin(GL_POLYGON); 651 glNormal3fv(N029); 652 glVertex3fv(P029); 653 glNormal3fv(N030); 654 glVertex3fv(P030); 655 glNormal3fv(N040); 656 glVertex3fv(P040); 657 glNormal3fv(N039); 658 glVertex3fv(P039); 659 glEnd(); 660 } 661 662 void 663 Fish004(void) 664 { 665 glBegin(GL_POLYGON); 666 glNormal3fv(N040); 667 glVertex3fv(P040); 668 glNormal3fv(N041); 669 glVertex3fv(P041); 670 glNormal3fv(N051); 671 glVertex3fv(P051); 672 glNormal3fv(N050); 673 glVertex3fv(P050); 674 glEnd(); 675 glBegin(GL_POLYGON); 676 glNormal3fv(N041); 677 glVertex3fv(P041); 678 glNormal3fv(N042); 679 glVertex3fv(P042); 680 glNormal3fv(N052); 681 glVertex3fv(P052); 682 glNormal3fv(N051); 683 glVertex3fv(P051); 684 glEnd(); 685 glBegin(GL_POLYGON); 686 glNormal3fv(N042); 687 glVertex3fv(P042); 688 glNormal3fv(N033); 689 glVertex3fv(P033); 690 glNormal3fv(N043); 691 glVertex3fv(P043); 692 glNormal3fv(N052); 693 glVertex3fv(P052); 694 glEnd(); 695 glBegin(GL_POLYGON); 696 glNormal3fv(N033); 697 glVertex3fv(P033); 698 glNormal3fv(N034); 699 glVertex3fv(P034); 700 glNormal3fv(N044); 701 glVertex3fv(P044); 702 glNormal3fv(N043); 703 glVertex3fv(P043); 704 glEnd(); 705 glBegin(GL_POLYGON); 706 glNormal3fv(N034); 707 glVertex3fv(P034); 708 glNormal3fv(N035); 709 glVertex3fv(P035); 710 glNormal3fv(N045); 711 glVertex3fv(P045); 712 glNormal3fv(N044); 713 glVertex3fv(P044); 714 glEnd(); 715 glBegin(GL_POLYGON); 716 glNormal3fv(N035); 717 glVertex3fv(P035); 718 glNormal3fv(N036); 719 glVertex3fv(P036); 720 glNormal3fv(N046); 721 glVertex3fv(P046); 722 glNormal3fv(N045); 723 glVertex3fv(P045); 724 glEnd(); 725 glBegin(GL_POLYGON); 726 glNormal3fv(N036); 727 glVertex3fv(P036); 728 glNormal3fv(N037); 729 glVertex3fv(P037); 730 glNormal3fv(N047); 731 glVertex3fv(P047); 732 glNormal3fv(N046); 733 glVertex3fv(P046); 734 glEnd(); 735 glBegin(GL_POLYGON); 736 glNormal3fv(N037); 737 glVertex3fv(P037); 738 glNormal3fv(N038); 739 glVertex3fv(P038); 740 glNormal3fv(N048); 741 glVertex3fv(P048); 742 glNormal3fv(N047); 743 glVertex3fv(P047); 744 glEnd(); 745 glBegin(GL_POLYGON); 746 glNormal3fv(N038); 747 glVertex3fv(P038); 748 glNormal3fv(N039); 749 glVertex3fv(P039); 750 glNormal3fv(N049); 751 glVertex3fv(P049); 752 glNormal3fv(N048); 753 glVertex3fv(P048); 754 glEnd(); 755 glBegin(GL_POLYGON); 756 glNormal3fv(N039); 757 glVertex3fv(P039); 758 glNormal3fv(N040); 759 glVertex3fv(P040); 760 glNormal3fv(N050); 761 glVertex3fv(P050); 762 glNormal3fv(N049); 763 glVertex3fv(P049); 764 glEnd(); 765 glBegin(GL_POLYGON); 766 glNormal3fv(N070); 767 glVertex3fv(P070); 768 glNormal3fv(N061); 769 glVertex3fv(P061); 770 glNormal3fv(N002); 771 glVertex3fv(P002); 772 glEnd(); 773 glBegin(GL_POLYGON); 774 glNormal3fv(N061); 775 glVertex3fv(P061); 776 glNormal3fv(N046); 777 glVertex3fv(P046); 778 glNormal3fv(N002); 779 glVertex3fv(P002); 780 glEnd(); 781 glBegin(GL_POLYGON); 782 glNormal3fv(N045); 783 glVertex3fv(P045); 784 glNormal3fv(N046); 785 glVertex3fv(P046); 786 glNormal3fv(N061); 787 glVertex3fv(P061); 788 glEnd(); 789 glBegin(GL_POLYGON); 790 glNormal3fv(N002); 791 glVertex3fv(P002); 792 glNormal3fv(N061); 793 glVertex3fv(P061); 794 glNormal3fv(N070); 795 glVertex3fv(P070); 796 glEnd(); 797 glBegin(GL_POLYGON); 798 glNormal3fv(N002); 799 glVertex3fv(P002); 800 glNormal3fv(N045); 801 glVertex3fv(P045); 802 glNormal3fv(N061); 803 glVertex3fv(P061); 804 glEnd(); 805 } 806 807 void 808 Fish005(void) 809 { 810 glBegin(GL_POLYGON); 811 glNormal3fv(N002); 812 glVertex3fv(P002); 813 glNormal3fv(N044); 814 glVertex3fv(P044); 815 glNormal3fv(N045); 816 glVertex3fv(P045); 817 glEnd(); 818 glBegin(GL_POLYGON); 819 glNormal3fv(N002); 820 glVertex3fv(P002); 821 glNormal3fv(N043); 822 glVertex3fv(P043); 823 glNormal3fv(N044); 824 glVertex3fv(P044); 825 glEnd(); 826 glBegin(GL_POLYGON); 827 glNormal3fv(N002); 828 glVertex3fv(P002); 829 glNormal3fv(N052); 830 glVertex3fv(P052); 831 glNormal3fv(N043); 832 glVertex3fv(P043); 833 glEnd(); 834 glBegin(GL_POLYGON); 835 glNormal3fv(N002); 836 glVertex3fv(P002); 837 glNormal3fv(N051); 838 glVertex3fv(P051); 839 glNormal3fv(N052); 840 glVertex3fv(P052); 841 glEnd(); 842 glBegin(GL_POLYGON); 843 glNormal3fv(N002); 844 glVertex3fv(P002); 845 glNormal3fv(N046); 846 glVertex3fv(P046); 847 glNormal3fv(N047); 848 glVertex3fv(P047); 849 glEnd(); 850 glBegin(GL_POLYGON); 851 glNormal3fv(N002); 852 glVertex3fv(P002); 853 glNormal3fv(N047); 854 glVertex3fv(P047); 855 glNormal3fv(N048); 856 glVertex3fv(P048); 857 glEnd(); 858 glBegin(GL_POLYGON); 859 glNormal3fv(N002); 860 glVertex3fv(P002); 861 glNormal3fv(N048); 862 glVertex3fv(P048); 863 glNormal3fv(N049); 864 glVertex3fv(P049); 865 glEnd(); 866 glBegin(GL_POLYGON); 867 glNormal3fv(N002); 868 glVertex3fv(P002); 869 glNormal3fv(N049); 870 glVertex3fv(P049); 871 glNormal3fv(N050); 872 glVertex3fv(P050); 873 glEnd(); 874 glBegin(GL_POLYGON); 875 glNormal3fv(N050); 876 glVertex3fv(P050); 877 glNormal3fv(N051); 878 glVertex3fv(P051); 879 glNormal3fv(N069); 880 glVertex3fv(P069); 881 glEnd(); 882 glBegin(GL_POLYGON); 883 glNormal3fv(N051); 884 glVertex3fv(P051); 885 glNormal3fv(N002); 886 glVertex3fv(P002); 887 glNormal3fv(N069); 888 glVertex3fv(P069); 889 glEnd(); 890 glBegin(GL_POLYGON); 891 glNormal3fv(N050); 892 glVertex3fv(P050); 893 glNormal3fv(N069); 894 glVertex3fv(P069); 895 glNormal3fv(N002); 896 glVertex3fv(P002); 897 glEnd(); 898 } 899 900 void 901 Fish006(void) 902 { 903 glBegin(GL_POLYGON); 904 glNormal3fv(N066); 905 glVertex3fv(P066); 906 glNormal3fv(N016); 907 glVertex3fv(P016); 908 glNormal3fv(N026); 909 glVertex3fv(P026); 910 glEnd(); 911 glBegin(GL_POLYGON); 912 glNormal3fv(N015); 913 glVertex3fv(P015); 914 glNormal3fv(N066); 915 glVertex3fv(P066); 916 glNormal3fv(N025); 917 glVertex3fv(P025); 918 glEnd(); 919 glBegin(GL_POLYGON); 920 glNormal3fv(N025); 921 glVertex3fv(P025); 922 glNormal3fv(N066); 923 glVertex3fv(P066); 924 glNormal3fv(N026); 925 glVertex3fv(P026); 926 glEnd(); 927 glBegin(GL_POLYGON); 928 glNormal3fv(N066); 929 glVertex3fv(P066); 930 glNormal3fv(N058); 931 glVertex3fv(P058); 932 glNormal3fv(N016); 933 glVertex3fv(P016); 934 glEnd(); 935 glBegin(GL_POLYGON); 936 glNormal3fv(N015); 937 glVertex3fv(P015); 938 glNormal3fv(N058); 939 glVertex3fv(P058); 940 glNormal3fv(N066); 941 glVertex3fv(P066); 942 glEnd(); 943 glBegin(GL_POLYGON); 944 glNormal3fv(N058); 945 glVertex3fv(P058); 946 glNormal3fv(N015); 947 glVertex3fv(P015); 948 glNormal3fv(N016); 949 glVertex3fv(P016); 950 glEnd(); 951 } 952 953 void 954 Fish007(void) 955 { 956 glBegin(GL_POLYGON); 957 glNormal3fv(N062); 958 glVertex3fv(P062); 959 glNormal3fv(N022); 960 glVertex3fv(P022); 961 glNormal3fv(N032); 962 glVertex3fv(P032); 963 glEnd(); 964 glBegin(GL_POLYGON); 965 glNormal3fv(N062); 966 glVertex3fv(P062); 967 glNormal3fv(N032); 968 glVertex3fv(P032); 969 glNormal3fv(N064); 970 glVertex3fv(P064); 971 glEnd(); 972 glBegin(GL_POLYGON); 973 glNormal3fv(N022); 974 glVertex3fv(P022); 975 glNormal3fv(N062); 976 glVertex3fv(P062); 977 glNormal3fv(N032); 978 glVertex3fv(P032); 979 glEnd(); 980 glBegin(GL_POLYGON); 981 glNormal3fv(N062); 982 glVertex3fv(P062); 983 glNormal3fv(N064); 984 glVertex3fv(P064); 985 glNormal3fv(N032); 986 glVertex3fv(P032); 987 glEnd(); 988 } 989 990 void 991 Fish008(void) 992 { 993 glBegin(GL_POLYGON); 994 glNormal3fv(N063); 995 glVertex3fv(P063); 996 glNormal3fv(N019); 997 glVertex3fv(P019); 998 glNormal3fv(N029); 999 glVertex3fv(P029); 1000 glEnd(); 1001 glBegin(GL_POLYGON); 1002 glNormal3fv(N019); 1003 glVertex3fv(P019); 1004 glNormal3fv(N063); 1005 glVertex3fv(P063); 1006 glNormal3fv(N029); 1007 glVertex3fv(P029); 1008 glEnd(); 1009 glBegin(GL_POLYGON); 1010 glNormal3fv(N063); 1011 glVertex3fv(P063); 1012 glNormal3fv(N029); 1013 glVertex3fv(P029); 1014 glNormal3fv(N065); 1015 glVertex3fv(P065); 1016 glEnd(); 1017 glBegin(GL_POLYGON); 1018 glNormal3fv(N063); 1019 glVertex3fv(P063); 1020 glNormal3fv(N065); 1021 glVertex3fv(P065); 1022 glNormal3fv(N029); 1023 glVertex3fv(P029); 1024 glEnd(); 1025 } 1026 1027 void 1028 Fish009(void) 1029 { 1030 glBegin(GL_POLYGON); 1031 glVertex3fv(P059); 1032 glVertex3fv(P012); 1033 glVertex3fv(P009); 1034 glVertex3fv(P060); 1035 glEnd(); 1036 glBegin(GL_POLYGON); 1037 glVertex3fv(P012); 1038 glVertex3fv(P004); 1039 glVertex3fv(P007); 1040 glVertex3fv(P009); 1041 glEnd(); 1042 } 1043 1044 void 1045 Fish_1(void) 1046 { 1047 Fish004(); 1048 Fish005(); 1049 Fish003(); 1050 Fish007(); 1051 Fish006(); 1052 Fish002(); 1053 Fish008(); 1054 Fish009(); 1055 Fish001(); 1056 } 1057 1058 void 1059 Fish_2(void) 1060 { 1061 Fish005(); 1062 Fish004(); 1063 Fish003(); 1064 Fish008(); 1065 Fish006(); 1066 Fish002(); 1067 Fish007(); 1068 Fish009(); 1069 Fish001(); 1070 } 1071 1072 void 1073 Fish_3(void) 1074 { 1075 Fish005(); 1076 Fish004(); 1077 Fish007(); 1078 Fish003(); 1079 Fish002(); 1080 Fish008(); 1081 Fish009(); 1082 Fish001(); 1083 Fish006(); 1084 } 1085 1086 void 1087 Fish_4(void) 1088 { 1089 Fish005(); 1090 Fish004(); 1091 Fish008(); 1092 Fish003(); 1093 Fish002(); 1094 Fish007(); 1095 Fish009(); 1096 Fish001(); 1097 Fish006(); 1098 } 1099 1100 void 1101 Fish_5(void) 1102 { 1103 Fish009(); 1104 Fish006(); 1105 Fish007(); 1106 Fish001(); 1107 Fish002(); 1108 Fish003(); 1109 Fish008(); 1110 Fish004(); 1111 Fish005(); 1112 } 1113 1114 void 1115 Fish_6(void) 1116 { 1117 Fish009(); 1118 Fish006(); 1119 Fish008(); 1120 Fish001(); 1121 Fish002(); 1122 Fish007(); 1123 Fish003(); 1124 Fish004(); 1125 Fish005(); 1126 } 1127 1128 void 1129 Fish_7(void) 1130 { 1131 Fish009(); 1132 Fish001(); 1133 Fish007(); 1134 Fish005(); 1135 Fish002(); 1136 Fish008(); 1137 Fish003(); 1138 Fish004(); 1139 Fish006(); 1140 } 1141 1142 void 1143 Fish_8(void) 1144 { 1145 Fish009(); 1146 Fish008(); 1147 Fish001(); 1148 Fish002(); 1149 Fish007(); 1150 Fish003(); 1151 Fish005(); 1152 Fish004(); 1153 Fish006(); 1154 } 1155 1156 void 1157 DrawShark(fishRec * fish) 1158 { 1159 float mat[4][4]; 1160 int n; 1161 float seg1, seg2, seg3, seg4, segup; 1162 float thrash, chomp; 1163 1164 fish->htail = (int) (fish->htail - (int) (5.0 * fish->v)) % 360; 1165 1166 thrash = 50.0 * fish->v; 1167 1168 seg1 = 0.6 * thrash * sin(fish->htail * RRAD); 1169 seg2 = 1.8 * thrash * sin((fish->htail + 45.0) * RRAD); 1170 seg3 = 3.0 * thrash * sin((fish->htail + 90.0) * RRAD); 1171 seg4 = 4.0 * thrash * sin((fish->htail + 110.0) * RRAD); 1172 1173 chomp = 0.0; 1174 if (fish->v > 2.0) { 1175 chomp = -(fish->v - 2.0) * 200.0; 1176 } 1177 P004[1] = iP004[1] + chomp; 1178 P007[1] = iP007[1] + chomp; 1179 P010[1] = iP010[1] + chomp; 1180 P011[1] = iP011[1] + chomp; 1181 1182 P023[0] = iP023[0] + seg1; 1183 P024[0] = iP024[0] + seg1; 1184 P025[0] = iP025[0] + seg1; 1185 P026[0] = iP026[0] + seg1; 1186 P027[0] = iP027[0] + seg1; 1187 P028[0] = iP028[0] + seg1; 1188 P029[0] = iP029[0] + seg1; 1189 P030[0] = iP030[0] + seg1; 1190 P031[0] = iP031[0] + seg1; 1191 P032[0] = iP032[0] + seg1; 1192 P033[0] = iP033[0] + seg2; 1193 P034[0] = iP034[0] + seg2; 1194 P035[0] = iP035[0] + seg2; 1195 P036[0] = iP036[0] + seg2; 1196 P037[0] = iP037[0] + seg2; 1197 P038[0] = iP038[0] + seg2; 1198 P039[0] = iP039[0] + seg2; 1199 P040[0] = iP040[0] + seg2; 1200 P041[0] = iP041[0] + seg2; 1201 P042[0] = iP042[0] + seg2; 1202 P043[0] = iP043[0] + seg3; 1203 P044[0] = iP044[0] + seg3; 1204 P045[0] = iP045[0] + seg3; 1205 P046[0] = iP046[0] + seg3; 1206 P047[0] = iP047[0] + seg3; 1207 P048[0] = iP048[0] + seg3; 1208 P049[0] = iP049[0] + seg3; 1209 P050[0] = iP050[0] + seg3; 1210 P051[0] = iP051[0] + seg3; 1211 P052[0] = iP052[0] + seg3; 1212 P002[0] = iP002[0] + seg4; 1213 P061[0] = iP061[0] + seg4; 1214 P069[0] = iP069[0] + seg4; 1215 P070[0] = iP070[0] + seg4; 1216 1217 fish->vtail += ((fish->dtheta - fish->vtail) * 0.1); 1218 1219 if (fish->vtail > 0.5) { 1220 fish->vtail = 0.5; 1221 } else if (fish->vtail < -0.5) { 1222 fish->vtail = -0.5; 1223 } 1224 segup = thrash * fish->vtail; 1225 1226 P023[1] = iP023[1] + segup; 1227 P024[1] = iP024[1] + segup; 1228 P025[1] = iP025[1] + segup; 1229 P026[1] = iP026[1] + segup; 1230 P027[1] = iP027[1] + segup; 1231 P028[1] = iP028[1] + segup; 1232 P029[1] = iP029[1] + segup; 1233 P030[1] = iP030[1] + segup; 1234 P031[1] = iP031[1] + segup; 1235 P032[1] = iP032[1] + segup; 1236 P033[1] = iP033[1] + segup * 5.0; 1237 P034[1] = iP034[1] + segup * 5.0; 1238 P035[1] = iP035[1] + segup * 5.0; 1239 P036[1] = iP036[1] + segup * 5.0; 1240 P037[1] = iP037[1] + segup * 5.0; 1241 P038[1] = iP038[1] + segup * 5.0; 1242 P039[1] = iP039[1] + segup * 5.0; 1243 P040[1] = iP040[1] + segup * 5.0; 1244 P041[1] = iP041[1] + segup * 5.0; 1245 P042[1] = iP042[1] + segup * 5.0; 1246 P043[1] = iP043[1] + segup * 12.0; 1247 P044[1] = iP044[1] + segup * 12.0; 1248 P045[1] = iP045[1] + segup * 12.0; 1249 P046[1] = iP046[1] + segup * 12.0; 1250 P047[1] = iP047[1] + segup * 12.0; 1251 P048[1] = iP048[1] + segup * 12.0; 1252 P049[1] = iP049[1] + segup * 12.0; 1253 P050[1] = iP050[1] + segup * 12.0; 1254 P051[1] = iP051[1] + segup * 12.0; 1255 P052[1] = iP052[1] + segup * 12.0; 1256 P002[1] = iP002[1] + segup * 17.0; 1257 P061[1] = iP061[1] + segup * 17.0; 1258 P069[1] = iP069[1] + segup * 17.0; 1259 P070[1] = iP070[1] + segup * 17.0; 1260 1261 glPushMatrix(); 1262 1263 glTranslatef(0.0, 0.0, -3000.0); 1264 1265 glGetFloatv(GL_MODELVIEW_MATRIX, &mat[0][0]); 1266 n = 0; 1267 if (mat[0][2] >= 0.0) { 1268 n += 1; 1269 } 1270 if (mat[1][2] >= 0.0) { 1271 n += 2; 1272 } 1273 if (mat[2][2] >= 0.0) { 1274 n += 4; 1275 } 1276 glScalef(2.0, 1.0, 1.0); 1277 1278 glEnable(GL_CULL_FACE); 1279 switch (n) { 1280 case 0: 1281 Fish_1(); 1282 break; 1283 case 1: 1284 Fish_2(); 1285 break; 1286 case 2: 1287 Fish_3(); 1288 break; 1289 case 3: 1290 Fish_4(); 1291 break; 1292 case 4: 1293 Fish_5(); 1294 break; 1295 case 5: 1296 Fish_6(); 1297 break; 1298 case 6: 1299 Fish_7(); 1300 break; 1301 case 7: 1302 Fish_8(); 1303 break; 1304 } 1305 glDisable(GL_CULL_FACE); 1306 1307 glPopMatrix(); 1308 } 1309